Conventionally, a backup is created in response to the occurrence of a process request to a database for the purpose of guaranteeing the fault tolerance performance of a database system. To provide a high fault tolerant service, a backup is generally provided at a sufficiently remote location to enable execution of a transaction at least one site even when a fault or the like occurs. Therefore, the backup is connected to a database device through network communication, and so-called synchronization is carried out to update the storage contents of the backup upon update of the storage contents of the database device.
In general, in a system using a backup, a server unit that generates a primary process result is called an active server, and a server unit that receives and saves data from which a replica is called a backup server. Examples of backup methods known are (A) a primary backup system and (B) an active-active method.
In the primary backup system (A), when a database server called a primary server processes and saves a transaction process request transmitted from a client, the primary server transmits the saved data to a backup server and requests replication thereof, the backup server notifies the end of replication to the primary server, and the primary server reports a processing result to the client after the notification (see Non-patent Document 1). The primary server is equivalent to the aforementioned active server, so that the system (A) may be called an active backup configuration.
FIG. 1 shows the sequential progress of processing by the primary backup system in a line chart. The line chart shows the time-variant or step-by-step progress downward. The progress of processing a transaction with individual computers of a client, a primary server (replica 1 in FIG. 1) and a backup server (replica 2 in FIG. 1) as constituting elements takes place in the following order:
(Step S21) The primary server receives a process request.
(Step S22) The primary server executes a requested process in predetermined procedures.
(Step S23) The primary server transmits the backup server a request of updating a replica after the process is completed.
(Step S24) The backup server creates a replica reflecting the update.
(Step S25) The backup server transmits the end of update of the replica.
(Step S26) The primary server stores that the backup server has updated the replica, which achieves the purpose of the backup.
(Step S27) The primary server transmits the end of processing to the client.
(Step S28) The client identifies the end of the transaction process.
In FIG. 1, a time LPB from the process request from the client to the reception of a processing result is called latency, and indicates a delay time from the generation of the request to the return of the result of the request; the longer the time LPB is, the higher the latency. The time LPB in the primary backup system (A) includes a time for one reciprocal communication and processing between the client and the primary server for a transaction process and a time for one reciprocal communication and processing between the primary server and the backup.
In the active-active system (B), a plurality of database servers which are replicas of one another are prepared. When a database server called a primary server processes and saves a transaction from a client, the transaction is transmitted to those database servers, and the client receives processing results reported from two of those database servers (see Non-patent Document 2). Each of the database servers in the system (B) is an active server in that the server itself saves process data.
FIG. 2 shows the sequential progress of processing by the active-active system in a line chart including two database servers, which are replicas of each other, called replica 1 and replica 2, as constituting elements. The processing of a transaction with the individual computers takes place in the following order:
(Step S31) Each replica receives a transaction process request.
(Step S32) Each replica executes a requested process in predetermined procedures. The processes of the replica 1 and the replica 2 are S32-1 and S32-2, respectively.
(Step S33) Each replica transmits a processing result to the client. The processes of the replica 1 and the replica 2 are S33-1 and S33-2, respectively.
(Step S34) The client identifies the end of the requested process upon reception of one processing result. In FIG. 2, the client receives the processing result of S33-1 and identifies the end of the process at the timing of S34.
Non-patent Document 1: J. Gray and A. Reuter, “Transaction, Processing: concepts and techniques” in “Data Management Systems Series”, Morgan Kaufmann Publishers, Inc., U.S.A. (1993).
Non-patent Document 2: F. B. Schneider, “Implementing Fault-Tolerant Services Using the State Machine Approach: At tutorial”, Vol. 22, No. 4, ACM Computing Surveys (CSUR), U.S.A. (1990), pp. 299-319.